package com.wk.service;

import com.wk.pojo.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.OutputStream;
import java.util.List;
import java.util.Map;

public interface Courseservice {
    //获得课程类型
    public List<Coursetype> selectbyalltype();

    //获得全部课程内容
    public List<Course_topic> selectbyalltopic();

    //通过课程id获得该课程视频
    public String selectbyvideo(Integer id);

    //显示图像或视频
    public void showmedia(String path, OutputStream outputStream);

    //返回课程单选题题目
    public List<Map<String,Object>> selectbyradio(Integer course_id);

    //通过主键id返回题目信息
    public Course_exam selectbyid(String id);

    //发布课程储存视频和图片
    public void insertintotopic(Course_topic course_topic);

    //上传至阿里云oss
    public String upload(MultipartFile file);

    //从阿里云oss下载
    public void deletealiyunoss(String path);

    //通过自己的id找出已经发布的课程
    public List<Course_topic> selectbytopiclist(Integer user_id,String course_name);

    //通过course_id删除课程测试
    public void deletebycourseexam(Integer course_id);

    //通过主键id删除course_topic
    public void deletebycoursetopic(Integer id);

    //通过主键id获取course_topic信息
    public Course_topic selectbytopicall(Integer id);

    //获得用户数量
    public Integer courtbyalluser();

    //更新课程topic
    public void updatebycoursetopic(Course_topic course_topic);

    //获得该用户所有的课程练习
    public List<Course_exam> selectbyuser_exam(Integer user_id);

    //把课程习题加入数据库
    public void insertintocourse_exam(Course_exam exam);

    //更新课程测试
    public void updatebycourseexam(Course_exam exam);

    //通过主键id删除课程测试
    public void deletebycoursetestid(Integer id);

    //提交点赞数
    public void updatecoursepraise(Integer id,Integer praise);

    //通过课程id获得该课程全部评论
    public List<Course_comment> selectbyidcomment(Integer course_id);

    //通过课程id获得该课程评论数有多少
    public String selectbycountcomment(Integer course_id);

    //提交课程评论信息
    public void insertintocoursecomment(Course_comment comment);

    //提交评论点赞数
    public void updatecommentpraise(Integer id);

    //通过课程类型获得课程
    public List<Course_topic> selectbytypecourse(String coursetype_id,String course_name);

    //查找出所有的课程
    public List<Course_topic> selectbyallcoursetopic(String course_name);

    //通过课程类型id获得课程类型名称
    public Coursetype selectbycoursetypeid(String id);

    //让这一类型的题目加一
    public void updatebyitemtype(Integer id);

    //通过coursetype_id降序时间排序，有参
    public List<Course_topic> selectbydate_topic(Integer coursetype_id,String course_name);

    //通过coursetype_id降序时间排序，无参
    public List<Course_topic> selectbydate_topic_noindex(String course_name);

    //通过course_id获得该课程的资料
    public List<Course_data> selectbyalldatas(Integer course_id);

    //通过user_id获得pdf信息
    public List<Course_data> selectbyuserid_data(Integer user_id);

    //提交course_pdf信息到数据库
    public void insertintocourse_data(Course_data data);

    //通过主键id获得pdf信息
    public Course_data selectbyidcourse_data(Integer id);

    //修改pdf信息到数据库中
    public void updateintopdf(Course_data data);

    //删除pdf信息
    public void deletebyidcourse_data(Integer id);

    //删除自己的课程评论
    public void deletebyidcourse_comment(Integer id);
}
